The present disclosure relates to computing systems utilizing tiered storage. More particularly, the present disclosure relates to managing allocation of computer and storage resources in a computing system utilizing tiered storage.
A tiered storage system includes two or more tiers of storage, each of which may be a different type of storage medium and may have different performance characteristics. A particular storage tier may be higher performance than one or more other tiers. The storage system may transfer data from a lower performing tier to a higher performing tier in response to more frequent accesses to the data. Alternatively, a tiered storage system may transfer data from a higher performing tier to a lower performing tier in response to less frequent accesses to the data, or to make space available in the higher performing tier for other data.
In response to data transferring to a higher performing tier, a program accessing that data may be able to increase computational throughput. Increasing computational throughput may correspond to increasing resources of the computer allocated to the program, such as CPU or memory. A resource management function of the computing system may determine which resources are suitable and may allocate those resources. Alternatively, a program accessing data stored in, or transferring to, a lower performance tier may, in relation to having lower performance access to the data, be unable to fully utilize some of the resources of the computer allocated to that program. As other programs may utilize such resources, a resource management function of the computing system may de-allocate, or release, resources the program cannot fully utilize.
To modify allocation of resources to a program, in relation to the locality of data within the storage system, the resource management function must be aware of the data transferring to, or from, the various tiers of the storage system. However, it is a feature of tiered storage systems to manage the momentary, or dynamic, location and transfer of data among the storage tiers transparently to programs accessing that data, and to other components of the computer or computing system. Thus, there is a need to communicate, from a storage system to a resource management function of the computing system, which tiers particular data is transferring to or from, as the storage system prepares or performs transferring that data.
It is an aspect of computing systems that programs may be limited with respect to particular resources of a computer. Limits to those resources may, in turn, limit the ability of a program to access data at a rate corresponding to that data being stored in a higher performing tier of a storage system. If, as a result of such limitations, a program cannot utilize higher performance access to data stored in a higher performing tier, the storage system may transfer the data to a lower performing tier, or may determine to not transfer other data accessed by that program to a higher performing tier.
However, it is another aspect of tiered storage systems that the storage system is unaware of the allocation of computer resources to programs accessing data in the storage system, or the utilization of those resources. Thus, there is a need to communicate, from the computer, or a resource management function of the computing system, to the storage system that a program cannot utilize higher performance access to particular data. The computing system, or the storage system, may thereby determine to discontinue transferring that particular data to the higher performance tier, or may determine to transfer that data to a lower performing tier.